1. Bases de datos SQL vs NoSQL
Antes de entender DynamoDB es fundamental comprender la diferencia entre bases de datos relacionales y no relacionales.
Bases de datos relacionales
- Usan tablas
- Estructura fija
- Lenguaje SQL
- Relaciones complejas
Ejemplo SQL
| ID | Nombre | Edad |
|---|---|---|
| 1 | Ana | 22 |
Bases de datos NoSQL
- Estructura flexible
- Formato JSON
- Escalabilidad horizontal
- Mayor flexibilidad
Ejemplo NoSQL
{
"id":1,
"nombre":"Ana",
"edad":22
}
Mini-test
¿Qué característica tiene NoSQL?
2. ¿Qué es Amazon DynamoDB?
Amazon DynamoDB es una base de datos NoSQL completamente administrada por AWS.
Está diseñada para aplicaciones que necesitan:
- Escalabilidad extrema
- Baja latencia
- Alta disponibilidad
- Rendimiento constante
Características principales
- Serverless
- NoSQL
- Clave-valor
- Documentos JSON
- Escalado automático
Qué administra AWS
- Infraestructura
- Servidores
- Replicación
- Parches
- Backups
Mini-test
¿Qué tipo de base de datos es DynamoDB?
3. Arquitectura NoSQL en DynamoDB
DynamoDB utiliza principalmente modelo clave-valor y documentos.
Modelo clave-valor
Clave → Valor
Ejemplo
{
"usuario_id":"100",
"nombre":"Carlos",
"nivel":5
}
Ventaja principal
No necesitamos que todos los registros tengan exactamente la misma estructura.
Ejemplo flexible
{
"usuario_id":"200",
"nombre":"Laura",
"mascota":"Luna"
}
Este registro tiene un atributo extra.
Mini-test
¿Qué ventaja tiene DynamoDB?
4. Tablas, ítems y atributos
Aunque DynamoDB sea NoSQL, sigue usando el concepto de tablas.
Elementos principales
- Tabla → contenedor principal
- Ítem → registro individual
- Atributo → dato concreto
Ejemplo
Tabla:
Usuarios
Ítem:
{
"id":"1",
"nombre":"Ana"
}
Diferencia importante
En DynamoDB los ítems pueden tener atributos distintos.
Mini-test
¿Qué es un ítem?
5. Partition Key y Sort Key
Partition Key
Es la clave principal usada para identificar y distribuir datos.
Sort Key
Permite ordenar múltiples registros relacionados.
Ejemplo
{
"usuario":"Ana",
"fecha":"2026-05-15"
}
| Clave | Valor |
|---|---|
| Partition Key | usuario |
| Sort Key | fecha |
Importancia
El diseño de claves es fundamental para rendimiento DynamoDB.
Mini-test
¿Qué permite Sort Key?
6. Operaciones de lectura y escritura
DynamoDB permite operaciones extremadamente rápidas.
Operaciones básicas
- PutItem
- GetItem
- UpdateItem
- DeleteItem
Ejemplo AWS CLI
aws dynamodb put-item \
--table-name Usuarios \
--item '{
"id":{"S":"1"},
"nombre":{"S":"Ana"}
}'
Lectura
aws dynamodb get-item \
--table-name Usuarios \
--key '{"id":{"S":"1"}}'
Mini-test
¿Qué operación inserta datos?
7. Escalabilidad horizontal
DynamoDB está diseñado para escalar horizontalmente.
Escalado horizontal
Añadir más servidores.
Escalado vertical
Añadir más potencia al mismo servidor.
DynamoDB
AWS reparte automáticamente datos entre múltiples nodos.
Ventajas
- Mayor rendimiento
- Alta disponibilidad
- Millones de peticiones
Mini-test
¿Qué significa escalado horizontal?
8. Alta disponibilidad y replicación
DynamoDB replica automáticamente datos entre múltiples Availability Zones.
Ventajas
- Tolerancia fallos
- Alta disponibilidad
- Protección automática
Qué significa Multi-AZ
Los datos existen simultáneamente en varios centros de datos.
Resultado
Si falla un servidor o incluso una AZ, los datos siguen disponibles.
Mini-test
¿Qué mejora Multi-AZ?
9. Crear una tabla DynamoDB
Paso 1
Entrar al servicio DynamoDB.
Paso 2
Seleccionar “Create Table”.
Paso 3
Table name:
Usuarios
Paso 4
Partition Key:
id
Paso 5
Mantener configuración por defecto.
Paso 6
Crear tabla.
Mini-test
¿Qué necesita obligatoriamente una tabla?
10. Consultas y escaneos
Query
Busca datos usando claves.
Scan
Recorre toda la tabla.
| Operación | Rendimiento |
|---|---|
| Query | Muy rápido |
| Scan | Más lento |
Ejemplo Query
aws dynamodb query \
--table-name Usuarios
Mini-test
¿Qué operación es más eficiente?
11. APIs y JSON
DynamoDB trabaja muchísimo con APIs y formato JSON.
Qué es una API
Un intermediario que permite comunicación entre programas.
Ejemplo API
Frontend
↓
API
↓
DynamoDB
JSON típico
{
"usuario":"Carlos",
"nivel":10,
"online":true
}
Ventaja
JSON encaja perfectamente con aplicaciones web modernas.
Mini-test
¿Qué formato usa mucho DynamoDB?
12. DynamoDB con Lambda
DynamoDB se integra perfectamente con arquitecturas serverless.
Arquitectura típica
Usuario
↓
API Gateway
↓
Lambda
↓
DynamoDB
Ejemplo Python
import boto3
dynamodb = boto3.resource('dynamodb')
tabla = dynamodb.Table('Usuarios')
tabla.put_item(
Item={
'id':'1',
'nombre':'Ana'
})
Ventajas
- Escalabilidad automática
- Baja latencia
- Pago por uso
Mini-test
¿Qué librería Python usa AWS?
13. Costes y seguridad
Factores de coste
- Lecturas
- Escrituras
- Almacenamiento
- Transferencia datos
Modos capacidad
| Modo | Uso |
|---|---|
| On-Demand | Tráfico variable |
| Provisioned | Tráfico predecible |
Seguridad
- IAM
- Cifrado
- VPC Endpoints
Mini-test
¿Qué modo es mejor para tráfico impredecible?
14. Arquitectura moderna con DynamoDB
Arquitectura típica moderna
Frontend React
↓
API Gateway
↓
Lambda
↓
DynamoDB
Ventajas
- Escalabilidad masiva
- Alta disponibilidad
- Arquitectura serverless
- Baja latencia
- Poco mantenimiento
Casos de uso reales
- Videojuegos online
- Redes sociales
- Apps móviles
- IoT
Mini-test
¿Qué arquitectura suele usar DynamoDB?